home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / ai / gaf200b / example / robotarm.fbk < prev    next >
Text File  |  1994-06-25  |  6KB  |  185 lines

  1. FEEDBACK Fdbck
  2.  
  3. CYCLE_TIME      0.05
  4.  
  5. !        Name      MIN   MAX
  6. INOUT Movement (-50.0, 50.0)
  7. IN    Current  (-1.0, 1.0)
  8. INOUT Position (0.0, 70.0)
  9. IN    Reference(0.0, 70.0)
  10. LOCAL Last_move(-50.0, 50.0)
  11. IN    Pos_reg (0, 1)
  12.  
  13. ENABLE = Pos_reg OR ( CURRENT > 0.1 AND CURRENT < -0.1 ) OR
  14.          ( MOVEMENT > 0.5 AND MOVEMENT < -0.5 );
  15.  
  16. INITIALIZATION
  17.     Last_move = Movement;
  18.     Position  = 0;
  19.     Movement  = 0;
  20. RESET
  21.     Last_move = Movement;
  22.     Movement  = 0;
  23. PRE_PROCESSING
  24.     Position = DELTA_TIME * ( Movement + Last_move ) / 2 + Position;
  25.     Last_move = Movement;
  26. END;
  27.  
  28. PRESET  ! 0
  29. !    Reference = 70;
  30.     Position  = 0;
  31. END;
  32.  
  33. PRESET  ! 1
  34. !    Reference = 35;
  35.     Position  = 40;
  36. END;
  37.  
  38. PRESET  ! 2
  39. !    Reference = 35;
  40.     Position  = 0;
  41. END;
  42.  
  43. PRESET  ! 3
  44. !    Reference = 35;
  45.     Position  = 70;
  46. END;
  47.  
  48. PRESET  ! 4
  49. !    Reference = 35;
  50.     Position  = 25;
  51. END;
  52.  
  53. !        Name                     Below    Low   High  Above  Max_truth
  54. Symbol   Very_low    OF Position (  0.0,   0.0,   3.0,   8.0,   1.0)
  55. Symbol   Low         OF Position (  0.0,   0.0,  25.0,  30.0,   1.0)
  56. Symbol   Medium_low  OF Position ( 25.0,  30.0,  30.0,  35.0,   1.0)
  57. Symbol   Medium      OF Position ( 30.0,  35.0,  35.0,  40.0,   1.0)
  58. Symbol   Medium_high OF Position ( 35.0,  40.0,  40.0,  45.0,   1.0)
  59. Symbol   High        OF Position ( 40.0,  45.0,  70.0,  70.0,   1.0)
  60. Symbol   Very_High   OF Position ( 60.0,  65.0,  70.0,  70.0,   1.0)
  61.  
  62. !        Name                     Below    Low   High  Above  Truth  Center
  63. Symbol   Down_large  OF Movement (-50.0, -50.0, -20.0, -10.0,   1.0, -50.0) 
  64. Symbol   Down_small  OF Movement (-20.0, -10.0, -10.0,   0.0,   1.0) 
  65. Symbol   Zero        OF Movement (-10.0,   0.0,   0.0,  10.0,   1.0) 
  66. Symbol   Up_small    OF Movement (  0.0,  10.0,  10.0,  20.0,   1.0) 
  67. Symbol   Up_large    OF Movement ( 10.0,  20.0,  50.0,  50.0,   1.0,  50.0)
  68.  
  69. Symbol   Down_medium OF Movement (-25.0, -15.0, -15.0,  -5.0,   1.0)
  70. Symbol   Down_creep  OF Movement (-10.0,  -5.0,  -5.0,   0.0,   1.0)
  71. Symbol   Up_creep    OF Movement (  0.0,   5.0,   5.0,  10.0,   1.0)
  72. Symbol   Up_medium   OF Movement (  5.0,  15.0,  15.0,  25.0,   1.0)
  73.  
  74. !        Name            Below    Low   High  Above  Truth   Center
  75. Symbol   Negative_large ( -1.0,  -1.0,  -0.4,  -0.2,   1.0,  -1.0)
  76. Symbol   Negative_small ( -0.4,  -0.2,  -0.2,   0.0,   1.0)
  77. Symbol   Zero           ( -0.2,   0.0,   0.0,   0.2,   1.0)
  78. Symbol   Positive_small (  0.0,   0.2,   0.2,   0.4,   1.0)
  79. Symbol   Positive_large (  0.2,   0.4,   1.0,   1.0,   1.0,   1.0)
  80.  
  81. Symbol   Negative       ( -1.0,  -1.0,   0.0,   0.0,   1.0)
  82. Symbol   Positive       (  0.0,   0.0,   1.0,   1.0,   1.0)
  83.  
  84. !!!!! Rules for output movement
  85. !
  86. !      -------------- Current --------------
  87. !       -L      -S      ZERO    +S      +L
  88. !-----|-------------------------------------
  89. !  UL | ZERO    US      UL      UM      UL  
  90. !  US | DS      ZERO    US      US      UM
  91. !  Z  | DS      DS      ZERO    US      US  
  92. !  DS | DM      DS      DS      ZERO    US  
  93. !  DL | DL      DM      DL      DS      ZERO
  94. !
  95.  
  96. IF Position IS Very_low AND Current IS Positive
  97. THEN Movement IS Up_creep
  98.  
  99. IF Position IS Very_low AND Current IS Negative
  100. THEN Movement IS Down_creep
  101.  
  102. IF Position IS Very_high AND Current IS Positive
  103. THEN Movement IS Up_creep
  104.  
  105. IF Position IS Very_high AND Current IS Negative
  106. THEN Movement IS Down_creep
  107.  
  108. IF Movement IS up_large AND Current IS Negative_large
  109. THEN Movement IS Zero
  110.  
  111. IF Movement IS up_large AND Current IS Negative_small
  112. THEN Movement IS Up_small
  113.  
  114. ! this rule will cause a peak Movement
  115. !IF Movement IS up_large AND Current IS Zero
  116. !THEN Movement IS Up_large
  117.  
  118. IF Movement IS up_large AND Current IS Positive_small
  119. THEN Movement IS Up_medium
  120.  
  121. IF Movement IS up_large AND Current IS Positive_large
  122. THEN Movement IS Up_large
  123.  
  124. IF Movement IS Up_small AND Current IS Negative_large
  125. THEN Movement IS Down_small
  126.  
  127. IF Movement IS Up_small AND Current IS Negative_small
  128. THEN Movement IS Zero
  129.  
  130. IF Movement IS Up_small AND Current IS Zero
  131. THEN Movement IS Zero
  132.  
  133. IF Movement IS Up_small AND Current IS Positive_small
  134. THEN Movement IS Up_small
  135.  
  136. IF Movement IS Up_small AND Current IS Positive_large
  137. THEN Movement IS Up_medium
  138.  
  139. IF Movement IS Zero AND Current IS Negative_large
  140. THEN Movement IS Down_creep
  141.  
  142. IF Movement IS Zero AND Current IS Negative_small
  143. THEN Movement IS Down_small
  144.  
  145. IF Movement IS Zero AND Current IS Zero
  146. THEN Movement IS Zero
  147.  
  148. IF Movement IS Zero AND Current IS Positive_small
  149. THEN Movement IS Up_creep
  150.  
  151. IF Movement IS Zero AND Current IS Positive_large
  152. THEN Movement IS Up_small
  153.  
  154. IF Movement IS Down_small AND Current IS Negative_large
  155. THEN Movement IS Down_medium
  156.  
  157. IF Movement IS Down_small AND Current IS Negative_small
  158. THEN Movement IS Down_small
  159.  
  160. IF Movement IS Down_small AND Current IS Zero
  161. THEN Movement IS Zero
  162.  
  163. IF Movement IS Down_small AND Current IS Positive_small
  164. THEN Movement IS Zero
  165.  
  166. IF Movement IS Down_small AND Current IS Positive_large
  167. THEN Movement IS Up_small
  168.  
  169. IF Movement IS Down_large AND Current IS Negative_large
  170. THEN Movement IS Down_large
  171.  
  172. IF Movement IS Down_large AND Current IS Negative_small
  173. THEN Movement IS Down_medium
  174.  
  175. IF Movement IS Down_large AND Current IS Zero
  176. THEN Movement IS Down_large
  177.  
  178. IF Movement IS Down_large AND Current IS Positive_small
  179. THEN Movement IS Down_small
  180.  
  181. IF Movement IS Down_large AND Current IS Positive_large
  182. THEN Movement IS Zero
  183.  
  184. END Fdbck;
  185.